﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for Strings
/// </summary>
public static class Strings
{
    //Session variables, also writing the type the session variable contains
    /// <summary>
    /// string
    /// </summary>
    public const string Session_Name = "name";
    /// <summary>
    /// string
    /// </summary>
    public const string Session_Thumbnail = "Thumb";
    /// <summary>
    /// string
    /// </summary>
    public const string Session_InputPath = "input";
    /// <summary>
    /// string
    /// </summary>
    public const string Session_OutputPath = "output";
    /// <summary>
    /// Dictionary>Texture.Type, string>
    /// </summary>
	public const string Session_TextureChanges = "TextureChanges";
    /// <summary>
    /// Texture.Type
    /// </summary>
    public const string Session_CurrentTextureChange = "cur_texchange";
    /// <summary>
    /// list>string>
    /// </summary>
    public const string Session_Shaders = "shaders";
    /// <summary>
    /// bool
    /// </summary> 
    public const string Session_Converter_Started = "conv";
    /// <summary>
    /// string
    /// </summary>
    public const string Session_Converter_Msg = "conv_msg";

    //The html GET/ variables

    /// <summary>
    /// To know what usercontrol to choose from
    /// </summary>
    public const string Query_Control = "c";
    //The three different user controls there are
    public const string Query_Control_Thumbnail = "thumbnail";
    public const string Query_Control_Shader = "shader";
    public const string Query_Control_Texture = "texture";    
    /// <summary>
    /// The id of the modelitem in modelitem list
    /// </summary>
    public const string Query_Edit_ID = "id";
    //Used in ModelItemHandler and in the selections usercontrols DataList for showing the images
    public const string Selection_ImageSrc = "imageSrc"; 
 
    //Errors
    public const string error_selection_noThumbnail = "No Thumbnail chosen"; 
    public const string error_selection_noDiffuse = "No Diffuse Map chosen";
    public const string error_selection_noNormal = "No Normal Map chosen";
    public const string error_selection_noShader = "No Shader chosen";

    public const string error_addmodel_noInputfile = "Need Input Path";
    public const string error_addmodel_failedAdding = "Failed to add model";
    public const string error_addmodel_converterRunning = "Application is busy converting a model";

    //Converter Messages
    public const string converter_started = "Started converter";
    public const string converter_finished = "Coverter is finished!";
    //If the programhandler.StartConverter() throws an exception
    public const string converter_threadcrash = "The converter background thread crashed";
    public const string converter_forceStop = "Stopped converter forcefully";

    public static class ModelItem
    {      
        public static readonly string[] ModelPaths = new string[] { "Models/", "Models\\" };
        public static readonly string[] ThumbnailPaths = new string[] { "Models/Thumbnails/", "Models\\Thumbnails\\" };
        public static readonly string[] ModelExtensions = new string[] { ".obj", ".fbx", ".txt" };
        public static readonly string[] TexturePaths = new string[] { "Textures/", "Textures\\" };
        /// <summary>
        /// .
        /// </summary>
        public static readonly char[] ExtensionSplitter = new char[] { '.' };
        /// <summary>
        /// ?
        /// </summary>
        public static readonly char[] ModelItemSplitter = new char[] { '?' };
        /// <summary>
        /// ' '
        /// </summary>
        public static readonly char[] ModelItem_LineDataSplitter = new char[] { ' ' };
        /// <summary>
        /// New line
        /// </summary>
        public static readonly string[] ModelItem_ItemsSplitter = new string[] { Environment.NewLine };

        public static class ListCommands
        {
            public const string name = "name",
            path = "path",
            thumbnail = "thumbnail",
            shader = "shader",
            diffusemap = "diffusemap",
            normalmap = "normalmap",
            comment = "#";
        }

        public static class ShaderTypes
        {
            public const string phong = "phong";
            public const string wireframe = "wireframe";
        }   
    }

}